﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using MyFirstSolution.Common;
using MyFirstSolution.BLL;

namespace MyFirstSolution.UI
{
    public partial class LoginForm : Form
    {
        /// <summary>
        /// 上次输入的密码是否正确？--必须使用静态数据，登录窗口关闭后再检测其值
        /// </summary>
        public static bool isPasswordCorrect;

        /// <summary>
        /// 界面窗体使用的系统参数管理对象--Common中实现
        /// </summary>
        private MyConfig myConfig;

        /// <summary>
        /// 界面窗体使用的用户数据管理对象--BLL中实现
        /// </summary>
        private UserManager userManager;

        public LoginForm()
        {
            InitializeComponent();
        }

        //加载登录窗体
        private void LoginForm_Load(object sender, EventArgs e)
        {
            myConfig = new MyConfig();

            if (myConfig.LoginName.Length > 0) //上次登录名称不空时，在界面上显示上次登录名称
            {
                txtInputLoginName.Text = myConfig.LoginName;
                if (myConfig.AutoLogin) //这部分功能再Program.cs中已经实现了
                {
                    chkAutoLogin.Checked = true;
                }
                else
                {
                    chkAutoLogin.Checked = false;
                }
            }

            //初始设置密码检测不通过
            isPasswordCorrect = false;
        }

        //点击登录按钮
        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (txtInputLoginName.Text.Trim().Length == 0) //用户账号不能为空
            {
                MessageBox.Show("请输入登录帐号和密码", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                string name = txtInputLoginName.Text.Trim();

                userManager = new UserManager();
                if (userManager.VerifyPassword(name, txtInputPassword.Text)) //校验帐号密码-->通过
                {
                    //记录登录成功的状态
                    myConfig.LoginName = name;
                    myConfig.LoginPassword = txtInputPassword.Text;
                    myConfig.AutoLogin = chkAutoLogin.Checked;

                    //记录本次验证结果--用于决定是否直接启动主窗体
                    isPasswordCorrect = true;

                    MessageBox.Show("登录成功！", "恭喜", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else //校验不通过
                    MessageBox.Show("登录失败！", "抱歉", MessageBoxButtons.OK, MessageBoxIcon.Error);

                //无论登录成功与否，都要关闭当前登录窗口
                Close();
            }
        }
    }
}
